public static void liberarMemoria(int tam){
	if (pilaEvaluacion.isEmpty()){
			// TODO: tratar error
	}
	else {
		try {
			IntPValue cima = (IntPValue)pilaEvaluacion.pop();
		
			int dir = cima.asInt();
			if (dir >= TAM_MEMORIA && dir + tam < memoria.size()) {
				try{
					if(dir+tam == memoria.size()-1)
						for (int i = tam-1; i >= 0; i--) {
							memoria.remove(dir + i);
						}
					else
						for (int i = tam-1; i >= 0; i--) {
							memoria.set(dir + i, new IntPValue(-1));
						}
				}
				catch (Exception e) {
					//erorMensaje = "ERROR Acceso del heap corrupto: free.";
					//TODO: tratar errores
				}
			}
			else{
				//errorMensaje = "ERROR Acceso a memoria incorrecto fuera de ambito del heap: free.";
				//TODO: tratar errores
				System.err.println("Pum en el free, nos pasamos de TAM_MEMORIA");
			}
		}
		catch (ClassCastException e) {
			//TODO: tratar errores, el pvalue deberia ser un int
			//"ERROR No coinciden los tipos: free " + cima.getTipo() + ".";         
		}
	}
}